home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
qlib205.zip
/
QLIB.ZIP
/
INC
/
TEXT.ASM
< prev
next >
Wrap
Assembly Source File
|
1996-05-06
|
3KB
|
207 lines
;text boxes,bars etc.
.code
; esi=y*160+x*2 + 0b8000h
; destroys ax,ebx,esi
; cx=x dx=y
calc macro
mov ax,160
push dx
mul dx ;destroy ax,dx
pop dx
mov bx,cx
shl bx,1
add ax,bx
movzx esi,ax
add esi,0b8000h
endm
backfill proc,x:word,xl:word,y:word,yl:word
mov ax,xl
add ax,x
mov xl,ax
mov ax,yl
add ax,y
mov yl,ax
mov dx,y
f1: ;for loop 1
mov cx,x
calc
f2:
mov gs:byte ptr[esi],'░'
inc si
mov gs:byte ptr[esi],113
inc si
inc cx
cmp cx,xl
jb f2
inc dx
cmp dx,yl
jb f1
ret
backfill endp
box proc,x:word,xl:word,y:word,yl:word
mov ax,xl
add ax,x
mov xl,ax
mov ax,yl
add ax,y
mov yl,ax
mov dx,y ;dx
f1: ;for loop 1
mov cx,x ;cx
calc
f2:
mov gs:byte ptr[esi],' '
inc si
mov gs:byte ptr[esi],23
inc si
inc cx
cmp cx,xl
jb f2
inc dx
cmp dx,yl
jb f1
ret
box endp
box1 proc x:word,xl:word,y:word,yl:word
local wid:word
mov ax,xl
mov wid,ax
dec wid
shl wid,1
add ax,x
dec ax
mov xl,ax
mov ax,yl
add ax,y
dec ax
mov yl,ax
mov cx,x
mov dx,y
calc
mov gs:byte ptr[esi],'┌'
inc cx
add si,2
@@:
mov gs:byte ptr[esi],'─'
inc cx
add si,2
cmp cx,xl
jb @b
mov gs:byte ptr[esi],'┐'
inc dx
mov cx,x
@@:
calc
mov gs:byte ptr[esi],'│'
add si,wid
mov gs:byte ptr[esi],'│'
inc dx
cmp dx,yl
jb @b
calc
mov gs:byte ptr[esi],'└'
add si,2
inc cx
@@:
mov gs:byte ptr[esi],'─'
inc cx
add si,2
cmp cx,xl
jb @b
mov gs:byte ptr[esi],'┘'
ret
box1 endp
box2 proc x:word,xl:word,y:word,yl:word
local wid:word
mov ax,xl
mov wid,ax
dec wid
shl wid,1
add ax,x
dec ax
mov xl,ax
mov ax,yl
add ax,y
dec ax
mov yl,ax
mov cx,x
mov dx,y
calc
mov gs:byte ptr[esi],'╔'
inc cx
add si,2
@@:
mov gs:byte ptr[esi],'═'
inc cx
add si,2
cmp cx,xl
jb @b
mov gs:byte ptr[esi],'╗'
inc dx
mov cx,x
@@:
calc
mov gs:byte ptr[esi],'║'
add si,wid
mov gs:byte ptr[esi],'║'
inc dx
cmp dx,yl
jb @b
mov cx,x
calc
mov gs:byte ptr[esi],'╚'
add si,2
inc cx
@@:
mov gs:byte ptr[esi],'═'
inc cx
add si,2
cmp cx,xl
jb @b
mov gs:byte ptr[esi],'╝'
ret
box2 endp
bar proc x:word,y:word,xl:word,col:word
mov cx,x
mov dx,y
calc
inc esi
mov al,byte ptr[col]
shl al,4
add al,7
xor cx,cx
@@:
mov gs:[esi],al
add si,2
inc cx
cmp cx,xl
jb @b
ret
bar endp